// pages/index/index.js
const api = require('../../utils/api.js')
const app = getApp()

Page({
    data: {
        labs: [],
        isAdmin: false,
        isLoggedIn: false,
        userInfo: null
    },

    onLoad(options) {
        this.loadLabs()
        this.updateLoginStatus()

        // 处理从微信小程序码扫描进入的scene参数
        if (options.scene) {
            try {
                const scene = decodeURIComponent(options.scene)
                console.log('扫码场景值:', scene)

                // 解析场景值
                const sceneData = this.parseScene(scene)

                if (sceneData) {
                    // 延迟跳转，确保首页已加载
                    setTimeout(() => {
                        if (sceneData.labId) {
                            // 跳转到报修页面
                            wx.navigateTo({
                                url: `/pages/repair/repair?labId=${sceneData.labId}`
                            })
                        } else if (sceneData.assetId) {
                            // 跳转到资产详情页面
                            wx.navigateTo({
                                url: `/pages/asset-detail/asset-detail?id=${sceneData.assetId}`
                            })
                        }
                    }, 500)
                }
            } catch (e) {
                console.error('解析场景值失败:', e)
            }
        }
    },

    onShow() {
        this.updateLoginStatus()
    },

    // 加载机房列表
    loadLabs() {
        wx.showLoading({ title: '加载中...' })

        api.getLabList().then(res => {
            this.setData({
                labs: res.list || res
            })
        }).catch(err => {
            console.error('加载机房列表失败', err)
        }).finally(() => {
            wx.hideLoading()
        })
    },

    // 更新登录状态
    updateLoginStatus() {
        this.setData({
            isLoggedIn: app.isLoggedIn(),
            isAdmin: app.globalData.isAdmin,
            userInfo: app.globalData.userInfo
        })
    },

    // 跳转到登录页
    goToLogin() {
        wx.navigateTo({
            url: '/pages/login/login'
        })
    },

    // 扫描二维码
    scanQRCode() {
        wx.scanCode({
            onlyFromCamera: true,
            scanType: ['qrCode'],
            success: res => {
                console.log('扫码结果:', res)

                // 解析二维码参数
                const scene = this.parseScene(res.result)

                if (scene) {
                    if (scene.labId) {
                        // 跳转到报修页面
                        wx.navigateTo({
                            url: `/pages/repair/repair?labId=${scene.labId}`
                        })
                    } else if (scene.assetId) {
                        // 跳转到资产详情页面
                        wx.navigateTo({
                            url: `/pages/asset-detail/asset-detail?id=${scene.assetId}`
                        })
                    } else {
                        wx.showToast({
                            title: '未知的二维码类型',
                            icon: 'none'
                        })
                    }
                } else {
                    wx.showToast({
                        title: '无效的二维码',
                        icon: 'none'
                    })
                }
            },
            fail: err => {
                console.log('扫码失败', err)
            }
        })
    },

    // 解析二维码场景值
    parseScene(result) {
        try {
            // 支持多种格式
            // 格式1: labId:A101 或 assetId:1001
            // 格式2: {"labId":"A101"} 或 {"assetId":"1001"}
            // 格式3: labId=A101 或 assetId=1001

            if (result.includes('{')) {
                return JSON.parse(result)
            } else if (result.includes('labId:')) {
                return { labId: result.split('labId:')[1] }
            } else if (result.includes('labId=')) {
                return { labId: result.split('labId=')[1] }
            } else if (result.includes('assetId:')) {
                return { assetId: result.split('assetId:')[1] }
            } else if (result.includes('assetId=')) {
                return { assetId: result.split('assetId=')[1] }
            }

            return null
        } catch (e) {
            console.error('解析二维码失败', e)
            return null
        }
    },

    // 选择机房
    selectLab(e) {
        const lab = e.currentTarget.dataset.lab

        wx.navigateTo({
            url: `/pages/repair/repair?labId=${lab.id}&labName=${lab.name}`
        })
    },

    // 跳转到我的报修
    goToMyOrders() {
        // 需要登录
        app.requireLogin({
            title: '查看我的报修',
            content: '请先登录后查看报修记录'
        }).then(() => {
            wx.switchTab({
                url: '/pages/my-orders/my-orders'
            })
        }).catch(() => {
            // 用户取消登录
        })
    },

    // 跳转到资产管理
    goToAssets() {
        wx.navigateTo({
            url: '/pages/assets/assets'
        })
    },

    // 跳转到我的借用
    goToMyLoans() {
        // 需要登录
        app.requireLogin({
            title: '查看我的借用',
            content: '请先登录后查看借用记录'
        }).then(() => {
            wx.navigateTo({
                url: '/pages/my-loans/my-loans'
            })
        }).catch(() => {
            // 用户取消登录
        })
    },

    // 跳转到管理页面
    goToAdmin() {
        wx.switchTab({
            url: '/pages/admin/admin'
        })
    }
})
